759c9b35cd4d74aff7b912324751b334bf598f47,spring-expression/src/main/java/org/springframework/expression/spel/ast/OpAnd.java,OpAnd,getValueInternal,#ExpressionState#,41
Before Change
boolean rightValue;
try {
TypedValue typedValue = getLeftOperand().getValueInternal(state);
this.assertTypedValueNotNull(typedValue);
leftValue = (Boolean)state.convertValue(typedValue, TypeDescriptor.valueOf(Boolean.class));
}
catch (SpelEvaluationException ee) {
ee.setPosition(getLeftOperand().getStartPosition());
After Change
@Override
public TypedValue getValueInternal(ExpressionState state) throws EvaluationException {
if (getBooleanValue(state, getLeftOperand()) == false) {
// no need to evaluate right operand
return BooleanTypedValue.FALSE;
}